﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using QLKhachSan.DTO;
using System.Data.SqlClient;
using QLKhachSan.DAO;
using QLKhachSan.BUS;
using DevExpress.XtraEditors;


namespace QLKhachSan.GUI
{
    public partial class fPhong : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public fPhong()
        {
            InitializeComponent();           
        }
        private Boolean checkThemLP;
        private Boolean checkThemKP;
        private Boolean checkThemP;
       
        private void fPhong_Load(object sender, EventArgs e)
        {
            // Kieu Phong
            simpleButtonLuuKP.Enabled = false;
            simpleButtonHuyKP.Enabled = false;
            textBoxMaKP.ResetText();
            textBoxTenKP.ResetText();
            simpleButtonSuaKP.Enabled = true;
            simpleButtonThemKP.Enabled = true;
            simpleButtonXoaKP.Enabled = true;
            textBoxMaKP.Enabled = false;
            textBoxTenKP.Enabled = false;
            dataGridViewKP.DataSource = BUS_KieuPhong.hienthiDanhSachKieuPhong();
            checkThemKP = false;
            // Loai Phong
            simpleButtonLuuLP.Enabled = false;
            simpleButtonHuyLP.Enabled = false;
            textBoxMaLP.ResetText();
            textBoxTenLP.ResetText();
            simpleButtonSuaLP.Enabled = true;
            simpleButtonThemLP.Enabled = true;
            simpleButtonXoaLP.Enabled = true;
            textBoxMaLP.Enabled = false;
            textBoxTenLP.Enabled = false;
            dataGridViewLP.DataSource = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();
            checkThemLP = false;         
            // Phong
            DataTable dt_LoaiPhong = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();
            for (int i = 0; i < (dt_LoaiPhong.Rows.Count); i++)
            {
                comboBoxLP.Items.Add(dt_LoaiPhong.Rows[i]["TenLP"]);
            }
            comboBoxLP.Text = dt_LoaiPhong.Rows[0]["TenLP"].ToString();

            DataTable dt_KieuPhong = BUS_KieuPhong.hienthiDanhSachKieuPhong();
            for (int i = 0; i < (dt_KieuPhong.Rows.Count); i++)
            {
                comboBoxKP.Items.Add(dt_KieuPhong.Rows[i]["TenKP"]);
            }
            comboBoxKP.Text = dt_KieuPhong.Rows[0]["TenKP"].ToString();

            textBoxTenP.Enabled = false;
            textBoxTenP.ResetText();
            textBoxViTri.Enabled = false;
            textBoxViTri.ResetText();
            textBoxTienIch.Enabled = false;
            textBoxTienIch.ResetText();
            comboBoxKP.Enabled = false;
            comboBoxLP.Enabled = false;
            
            textBoxGia.Enabled = false;
            textBoxGia.ResetText();
            simpleButtonHuyP.Enabled = false;
            simpleButtonLuuP.Enabled = false;
            simpleButtonSuaP.Enabled = true;
            simpleButtonThemP.Enabled = true;
            simpleButtonXoaP.Enabled = true;
            dataGridViewP.DataSource = BUS_Phong.hienthiDanhSachPhongTheoTenPhong();
            if (dataGridViewP.Rows.Count > 1)
            {
                for (int i = 0; i < dataGridViewP.Rows.Count - 1; i++)
                {
                    dataGridViewP.Rows[i].Cells[0].Value = i + 1;
                }
            }
            checkThemP = false;
            

        }
     

       

        private void simpleButtonThemLP_Click(object sender, EventArgs e)
        {
            textBoxMaLP.ResetText();
            textBoxTenLP.ResetText();
            simpleButtonLuuLP.Enabled =  true;
            simpleButtonHuyLP.Enabled =  true;
            simpleButtonSuaLP.Enabled = false;
            simpleButtonThemLP.Enabled = false;
            simpleButtonXoaLP.Enabled = false;
            textBoxMaLP.Enabled = false;
            textBoxTenLP.Enabled = true;
            textBoxTenLP.Focus();
            checkThemLP = true;
        }

        private void simpleButtonSuaLP_Click(object sender, EventArgs e)
        {
            if (textBoxMaLP.Text.Trim() != "")
            {
                textBoxMaLP.Enabled = false;
                textBoxTenLP.Enabled = true;
                simpleButtonLuuLP.Enabled = true;
                simpleButtonHuyLP.Enabled = true;
                simpleButtonSuaLP.Enabled = false;
                simpleButtonThemLP.Enabled = false;
                simpleButtonXoaLP.Enabled = false;
                textBoxTenLP.Focus();
                checkThemLP = false;               
            }
            else
            {            
                MessageBox.Show("Bạn Cần chọn loại phòng cần sửa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
        }

        private void simpleButtonHuyLP_Click(object sender, EventArgs e)
        {
            simpleButtonLuuLP.Enabled = false;
            simpleButtonHuyLP.Enabled = false;
            textBoxMaLP.ResetText();
            textBoxTenLP.ResetText();
            simpleButtonSuaLP.Enabled = true;
            simpleButtonThemLP.Enabled = true;
            simpleButtonXoaLP.Enabled = true;
            textBoxMaLP.Enabled = false;
            textBoxTenLP.Enabled = false;
            dataGridViewLP.DataSource = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();
            checkThemLP = false;
            comboBoxLP.Items.Clear();
            DataTable dt_LoaiPhong = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();
            for (int i = 0; i < (dt_LoaiPhong.Rows.Count); i++)
            {
                comboBoxLP.Items.Add(dt_LoaiPhong.Rows[i]["TenLP"]);
            }
            comboBoxLP.Text = dt_LoaiPhong.Rows[0]["TenLP"].ToString();
        }

        private void simpleButtonLuuLP_Click(object sender, EventArgs e)
        {
            if (textBoxTenLP.Text.Trim() != "" )

            {
                    DataTable dt_lp = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();
                    int dem = 0;
                    for (int i = 0; i < dt_lp.Rows.Count; i++)
                    {
                        if (textBoxTenLP.Text.Trim() == dt_lp.Rows[i]["TenLP"].ToString().Trim())
                        {
                            dem++;
                            break;
                        }                      
                    }
                    if (dem == 0)
                    {
                    DTO_LoaiPhong lp = new DTO_LoaiPhong();
                    lp.TenLP = textBoxTenLP.Text;
                    if (checkThemLP)
                    {                       
                        BUS_LoaiPhong.themLoaiPhong(lp);
                        XtraMessageBox.Show(" Thêm Loại phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        
                    }
                    else if (!checkThemLP)
                    { 
                        lp.MaLP = int.Parse(textBoxMaLP.Text);
                        BUS_LoaiPhong.suaLoaiPhong(lp);
                        XtraMessageBox.Show(" Sửa Loại phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);                       
                    }
                    simpleButtonHuyLP_Click(sender, e);
                    }
                    else
                    {
                        MessageBox.Show("Tên loại phòng đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
            }
            else 
            {
                MessageBox.Show("Bạn cần điền đầy đủ thông tin!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
        }

        private void dataGridViewLP_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (!checkThemLP)
                {                  
                        int r = dataGridViewLP.CurrentCell.RowIndex;                       
                        textBoxTenLP.Text = dataGridViewLP.Rows[r].Cells["TenLP"].Value.ToString();
                        textBoxMaLP.Text = dataGridViewLP.Rows[r].Cells["MaLP"].Value.ToString();
                }
               
            }
            catch(Exception )
            {
            }
        }

        private void simpleButtonXoaLP_Click(object sender, EventArgs e)
        {
           
            if (textBoxMaLP.Text.Trim() != "")
            {                           
                    if (MessageBox.Show("Bạn có chắc chắn muốn xóa???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                       try{
                        DTO_LoaiPhong lp = new DTO_LoaiPhong();
                        lp.MaLP = int.Parse(textBoxMaLP.Text);
                        BUS_LoaiPhong.xoaLoaiPhong(lp);
                        simpleButtonHuyLP_Click(sender, e);
                       }
                       catch (Exception)
                       {
                           MessageBox.Show("Không thể xóa được vì mã Loại Phòng đã tồn tại ở bảng Khác!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                       }
                    }
            }
            else 
            {                
                MessageBox.Show("Cần chọn loại phòng cần xóa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonThemKP_Click(object sender, EventArgs e)
        {
            simpleButtonLuuKP.Enabled = true;
            simpleButtonHuyKP.Enabled = true;
            textBoxMaKP.ResetText();
            textBoxTenKP.ResetText();
            simpleButtonSuaKP.Enabled = false;
            simpleButtonThemKP.Enabled = false;
            simpleButtonXoaKP.Enabled = false;
            textBoxMaKP.Enabled = false;
            textBoxTenKP.Enabled = true;
            textBoxTenLP.Focus();
            checkThemKP = true;
        }

        private void simpleButtonSuaKP_Click(object sender, EventArgs e)
        {
            
            if (textBoxMaKP.Text.Trim() != "")
            {
                simpleButtonLuuKP.Enabled = true;
                simpleButtonHuyKP.Enabled = true;
                simpleButtonSuaKP.Enabled = false;
                simpleButtonThemKP.Enabled = false;
                simpleButtonXoaKP.Enabled = false;
                textBoxMaKP.Enabled = false;
                textBoxTenKP.Enabled = true;                
                textBoxTenLP.Focus();
                checkThemKP = false;               
            }
            else
            {                
                MessageBox.Show("Cần chọn Kiểu phòng cần sửa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonHuyKP_Click(object sender, EventArgs e)
        {
            simpleButtonLuuKP.Enabled = false;
            simpleButtonHuyKP.Enabled = false;
            textBoxMaKP.ResetText();
            textBoxTenKP.ResetText();
            simpleButtonSuaKP.Enabled = true;
            simpleButtonThemKP.Enabled = true;
            simpleButtonXoaKP.Enabled = true;
            textBoxMaKP.Enabled = false;
            textBoxTenKP.Enabled = false;
            dataGridViewKP.DataSource = BUS_KieuPhong.hienthiDanhSachKieuPhong();
            checkThemKP = false;
            comboBoxKP.Items.Clear();
            DataTable dt_KieuPhong = BUS_KieuPhong.hienthiDanhSachKieuPhong();
            for (int i = 0; i < (dt_KieuPhong.Rows.Count); i++)
            {
                comboBoxKP.Items.Add(dt_KieuPhong.Rows[i]["TenKP"]);
            }
            comboBoxKP.Text = dt_KieuPhong.Rows[0]["TenKP"].ToString();
        }

        private void dataGridViewKP_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (!checkThemKP)
                {
                    int r = dataGridViewKP.CurrentCell.RowIndex;
                    textBoxTenKP.Text = dataGridViewKP.Rows[r].Cells["TenKP"].Value.ToString();
                    textBoxMaKP.Text = dataGridViewKP.Rows[r].Cells["MaKP"].Value.ToString();                  
                }

            }
            catch (Exception)
            {
            }
        }

        private void simpleButtonLuuKP_Click(object sender, EventArgs e)
        {
            if (textBoxTenKP.Text.Trim() != "")
            {
                DataTable dt_KP = BUS_KieuPhong.hienthiDanhSachKieuPhong();
                int dem = 0;
                for (int i = 0; i < dt_KP.Rows.Count; i++)
                {
                    if (textBoxTenKP.Text.Trim() == dt_KP.Rows[i]["TenKP"].ToString().Trim())
                    {
                        dem++;
                        break;
                    }
                }
                if (dem == 0)
                {
                    DTO_KieuPhong KP = new DTO_KieuPhong();
                    KP.TenKP = textBoxTenKP.Text;
                    if (checkThemKP)
                    {
                        BUS_KieuPhong.themKieuPhong(KP);
                        XtraMessageBox.Show(" Thêm Kiểu phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                    else if (!checkThemKP)
                    {
                        KP.MaKP = int.Parse(textBoxMaKP.Text);
                        BUS_KieuPhong.suaKieuPhong(KP);
                        XtraMessageBox.Show(" Sửa Kiểu phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    simpleButtonHuyKP_Click(sender, e);
                }
                else
                {
                    MessageBox.Show("Tên Kiểu phòng đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Bạn cần điền đầy đủ thông tin!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
        }

        private void simpleButtonXoaKP_Click(object sender, EventArgs e)
        {
            if (textBoxMaKP.Text.Trim() != "")
            {
                if (MessageBox.Show("Bạn có Chắc chắn muốn xóa???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                    DTO_KieuPhong KP = new DTO_KieuPhong();
                    KP.MaKP = int.Parse(textBoxMaKP.Text);
                    BUS_KieuPhong.xoaKieuPhong(KP);
                    simpleButtonHuyKP_Click(sender, e);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Không thể xóa được vì mã Kiểu phòng đã tồn tại ở bảng Khác!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Cần chọn Kiểu phòng cần xóa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void simpleButtonThemP_Click(object sender, EventArgs e)
        {
            textBoxTenP.Enabled = true;
            textBoxTenP.ResetText();
            textBoxTenP.Focus();
            textBoxViTri.Enabled = true;
            textBoxViTri.ResetText();
            textBoxTienIch.Enabled = true;
            textBoxTienIch.ResetText();
            comboBoxKP.Enabled = true;
            comboBoxLP.Enabled = true;
            textBoxGia.Enabled = true;
            textBoxGia.ResetText();
            simpleButtonHuyP.Enabled = true;
            simpleButtonLuuP.Enabled = true;
            simpleButtonThemP.Enabled = false;
            simpleButtonSuaP.Enabled = false;
            simpleButtonXoaP.Enabled = false;
           
            checkThemP = true;
        }

        private void simpleButtonSuaP_Click(object sender, EventArgs e)
        {      
            if (textBoxTenP.Text.Trim() != "")
            {
                textBoxTenP.Enabled = false;
                textBoxViTri.Focus();
                textBoxViTri.Enabled = true;               
                textBoxTienIch.Enabled = true;                
                comboBoxKP.Enabled = true;
                comboBoxLP.Enabled = true;
                textBoxGia.Enabled = true;                
                simpleButtonHuyP.Enabled = true;
                simpleButtonLuuP.Enabled = true;
                simpleButtonThemP.Enabled = false;
                simpleButtonSuaP.Enabled = false;
                simpleButtonXoaP.Enabled = false;
                checkThemP = false;
                
            }
            else
            {
                MessageBox.Show("Bạn cần chọn Phòng cần sửa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void simpleButtonHuyP_Click(object sender, EventArgs e)
        {
            textBoxTenP.Enabled = false;
            textBoxTenP.ResetText();
            textBoxViTri.Enabled = false;
            textBoxViTri.ResetText();
            textBoxTienIch.Enabled = false;
            textBoxTienIch.ResetText();
            comboBoxKP.Enabled = false;
            comboBoxLP.Enabled = false;
            textBoxGia.Enabled = false;
            textBoxGia.ResetText();
            simpleButtonHuyP.Enabled = false;
            simpleButtonLuuP.Enabled = false;
            simpleButtonSuaP.Enabled = true;
            simpleButtonThemP.Enabled = true;
            simpleButtonXoaP.Enabled = true;
            dataGridViewP.DataSource = BUS_Phong.hienthiDanhSachPhongTheoTenPhong();
            if (dataGridViewP.Rows.Count>1)
            {
                 for (int i = 0; i < dataGridViewP.Rows.Count-1; i++)
            {
                dataGridViewP.Rows[i].Cells[0].Value = i + 1;
            }
            }
            checkThemP = false;
            
        }

        private void dataGridViewP_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (!checkThemP)
                {                    
                        int r = dataGridViewP.CurrentCell.RowIndex;
                        textBoxTenP.Text = dataGridViewP.Rows[r].Cells["TenPhong"].Value.ToString();
                        textBoxViTri.Text = dataGridViewP.Rows[r].Cells["ViTri"].Value.ToString();
                        textBoxTienIch.Text = dataGridViewP.Rows[r].Cells["TienIch"].Value.ToString();
                        comboBoxKP.Text = dataGridViewP.Rows[r].Cells["KieuPhong"].Value.ToString();
                        comboBoxLP.Text = dataGridViewP.Rows[r].Cells["LoaiPhong"].Value.ToString();
                        textBoxGia.Text = dataGridViewP.Rows[r].Cells["Gia"].Value.ToString();
                       
                }

            }
            catch (Exception)
            {
            }
        }

        private void simpleButtonLuuP_Click(object sender, EventArgs e)
        {
            if (textBoxTenP.Text.Trim() != "" && textBoxViTri.Text.Trim() != "" && textBoxTienIch.Text.Trim() != "" && textBoxGia.Text.Trim() != "")
            {
                DataTable dt_p = BUS_Phong.hienthiDanhSachPhong();
                int dem = 0;
                for (int i = 0; i < dt_p.Rows.Count; i++)
                {
                    if (textBoxTenP.Text.Trim() == dt_p.Rows[i]["TenPhong"].ToString().Trim())
                    {
                        dem++;
                        break;
                    }
                }

                    DTO_Phong p = new DTO_Phong();
                    p.TenPhong = textBoxTenP.Text.ToString();
                    p.ViTri = textBoxViTri.Text;
                    p.TienIch = textBoxTienIch.Text;

                        DataTable dt_LoaiPhong = BUS_LoaiPhong.hienthiDanhSachLoaiPhong();                        
                        for (int i = 0; i < dt_LoaiPhong.Rows.Count; i++)
                        {
                            if (dt_LoaiPhong.Rows[i]["TenLP"].ToString().Trim() == comboBoxLP.Text.Trim())
                            {
                                 p.MaLP = int.Parse(dt_LoaiPhong.Rows[i]["MaLP"].ToString());
                                 break;
                            }
                        }

                        DataTable dt_KieuPhong = BUS_KieuPhong.hienthiDanhSachKieuPhong();
                        for (int i = 0; i < dt_KieuPhong.Rows.Count; i++)
                        {
                            if (dt_KieuPhong.Rows[i]["TenKP"].ToString().Trim() == comboBoxKP.Text.Trim())
                            {                                
                                p.MaKP = int.Parse(dt_KieuPhong.Rows[i]["MaKP"].ToString());
                                break;
                            }
                        }
                        p.Gia = int.Parse(textBoxGia.Text.ToString());

                     

                    if (checkThemP)
                    {
                        if (dem == 0)
                        {
                            p.MaTrangThai = 1;
                            BUS_Phong.themPhong(p);
                            XtraMessageBox.Show(" Thêm Phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show("Tên Phòng đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else if (!checkThemP)
                    {   
                        for (int i = 0; i < dt_p.Rows.Count; i++)
                        {
                            if (dt_p.Rows[i]["TenPhong"].ToString().Trim() == textBoxTenP.Text.Trim())
                            {                               
                                p.MaTrangThai = int.Parse(dt_p.Rows[i]["MaTrangThai"].ToString());
                                break;
                            }
                        }
                        BUS_Phong.suaPhong(p);
                        XtraMessageBox.Show(" Sửa Phòng thành công ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    simpleButtonHuyP_Click(sender, e);
                
            }
            else
            {
                MessageBox.Show("Bạn cần điền đầy đủ thông tin!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
           
        }

        private void textBoxGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }

        private void textBoxTenP_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && (e.KeyChar != '.'))
                e.Handled = true;
        }

        private void simpleButtonXoaP_Click(object sender, EventArgs e)
        {
            if (textBoxTenP.Text.Trim() != "")
            {
                if (MessageBox.Show("Bạn có Chắc chắn muốn xóa???", "Note !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try{
                    DTO_Phong P = new DTO_Phong();
                    P.TenPhong = textBoxTenP.Text.ToString();
                    BUS_Phong.xoaPhong(P);
                    simpleButtonHuyP_Click(sender, e);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Không thể xóa được vì Phòng đã tồn tại ở bảng Khác!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Cần chọn Phòng cần xóa!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void textBoxTenP_Leave(object sender, EventArgs e)
        {
            if (textBoxTenP.Text.Trim() != "")
            {
                DataTable dt_p = BUS_Phong.hienthiDanhSachPhong();               
                for (int i = 0; i < dt_p.Rows.Count; i++)
                {
                    if (textBoxTenP.Text.Trim() == dt_p.Rows[i]["TenPhong"].ToString().Trim())
                    {
                        MessageBox.Show("Tên Phòng đã có trong cơ sở dử liệu!!!???", "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        textBoxTenP.ResetText();
                        break;
                    }
                }
                 
                           
            }
        }

        private void simpleButtonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
       
    }
}